
package com.minosiants.dann.data
import org.apache.commons.lang.builder.ToStringBuilder

import org.bson.types.ObjectId

import com.google.gson.annotations.SerializedName

trait ToString {
	override def toString= ToStringBuilder.reflectionToString(this);
}

class Entity extends ToString{
	@SerializedName("user_mentions")
	var userMentions:java.util.List[User]=null
	var urls:java.util.List[Url]=null
	var hashtags:java.util.List[HashTag]=null
}

class Url extends ToString{
	var url=""
	@SerializedName("expanded_url")
	var	expandedUrl=""
}
class User extends ToString{
	var name=""
	@SerializedName("screen_name")
	var screenNmae=""	
	var id=0l
}
class HashTag extends ToString{
	var text=""
		
	
}


class Status() extends ToString {
	var text=""
	var truncated=false
	var entities:Entity=null
	@SerializedName("in_reply_to_user_id")
	var inReplyToUserId=0l
	@SerializedName("in_reply_to_user_id_str")
	var inReplyToUserIdStr=""
	var favorited=false
	var source=""
	@SerializedName("created_at")	
	var createdAt=""
	@SerializedName("in_reply_to_screen_name")	
	var inReplyToScreenName=""	
	@SerializedName("in_reply_to_status_id_str")	
	var inReplyToStatusIdStr=""
	@SerializedName("in_reply_to_status_id")
	var inReplyToStatusId=0l
	var retweeted=false
	var id=0l
	@SerializedName("id_str")
	var idStr=""
	@SerializedName("retweet_count")
	var retweetCount=0
	var user:User=null
	//var contributors	
	//var coordinates: null
	
	//var place
}
trait DbCollectionName{
	val collectionName:String
}
class UserTimeline extends Status with BasicData{
	override val collectionName=UserTimeline.collectionName
}
object UserTimeline{
	val collectionName="userTimeline"
}